package Song.Han.demo01;

import java.io.FileNotFoundException;
import java.io.IOException;
/*
Throwable类中定义了3个异常处理的方法：
    String getMessage()返回此throwable的简短描述
    String toString()返回此throwable的详细消息字符串
    void printStackTrace() JVM打印异常对象，默认此方法（打印信息最全面）
*/
public class Demo06Throwable {
    public static void main(String[] args) {

        try{
            readFile("C:\\\\a.tx");
        }catch (IOException e){
            //String getMessage()
            System.out.println(e.getMessage());//文件后缀名不正确
            System.out.println(e.toString());//java.io.IOException: 文件后缀名不正确
            System.out.println(e);//java.io.IOException: 文件后缀名不正确

            e.printStackTrace();
            /*
            java.io.IOException: 文件后缀名不正确
	            at Song.Han.demo01.Demo06Throwable.readFile(Demo06Throwable.java:35)
	            at Song.Han.demo01.Demo06Throwable.main(Demo06Throwable.java:15)
            */
        }

        System.out.println("后续代码");
    }

    public static void readFile(String fileName) throws IOException {

        /*
            如果传递的路径不是.txt结尾
            那么就抛出IO异常对象
        */
        if(!fileName.endsWith(".txt")){
            throw new IOException("文件后缀名不正确");
        }

        if(!fileName.equals("C:\\\\a.txt")){
            throw  new FileNotFoundException("传递的文件路径不是C:\\\\a.txt");
        }


        System.out.println("路径正确，读取文件");
    }


}
